package com.wing.wecom.service;

import chat.qiye.wechat.sdk.api.oa.param.AddCheckInUserFaceParam;
import chat.qiye.wechat.sdk.api.oa.param.GetCheckInDataParam;
import chat.qiye.wechat.sdk.api.oa.param.GetCheckInUserRuleParam;
import chat.qiye.wechat.sdk.api.oa.param.SetCheckInScheduleListParam;
import chat.qiye.wechat.sdk.api.oa.resp.*;

/**
 * 企业微信打卡-Service
 *
 * @author
 */
public interface CheckInService {

    /**
     * 获取企业所有打卡规则
     *
     * @return
     */
    CorpCheckInRuleResp getCorpOption();

    /**
     * 获取员工打卡规则
     * @param param
     * @return
     */
    UserCheckInRuleResp getUserOption(GetCheckInUserRuleParam param);

    /**
     * 获取打卡记录数据
     * @param param
     * @return
     */
    CheckInDataResp getData(GetCheckInDataParam param);

    /**
     * 获取打卡日报数据
     * @param param
     * @return
     */
    CheckInDayDataResp getDayData(GetCheckInDataParam param);

    /**
     * 获取打卡月报数据
     * @param param
     * @return
     */
    CheckInMonthDataResp getMonthData(GetCheckInDataParam param);

    /**
     * 获取打卡人员排班信息
     * @param param
     * @return
     */
    CheckInUserScheduleListResp getUserScheduleList(GetCheckInDataParam param);

    /**
     * 为打卡人员排班
     * @param param
     * @return
     */
    int setUserScheduleList(SetCheckInScheduleListParam param);

    /**
     * 录入打卡人员人脸信息
     * @param param
     * @return
     */
    int addUserFace(AddCheckInUserFaceParam param);

}
